package com.liddhome.service.impl;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.liddhome.dao.MessageDao;
import com.liddhome.entity.Message;
import com.liddhome.service.MessageService;

/**
 * 留言Service实现类
 * @author lidd
 *
 */
@Service("messageService")
public class MessageServiceImpl implements MessageService{

	@Resource
	private MessageDao messageDao;
	
	public int add(Message message) {
		return messageDao.add(message);
	}

	/**
	 * 获取所有的评论
	 */
	public List<Message> list(Map<String, Object> map) {
		//所有的评论
		List<Message> messageList=messageDao.list(map);
		if(messageList!=null && messageList.size()>0) {
			for(Message message : messageList) {
				String id=message.getId();
				List<Message> replyList=findByParent(id);
				message.setChildren(replyList);
			}
		}
		return messageList;
	}

	/**
	 * 获取所有评论的回复，因为评论有回复，回复也有回复，回复的回复还可能有回复，所有此处可以用递归
	 * @param pid
	 * @return
	 */
	public List<Message> findByParent(String pid){
		//根据所有评论的id获取每个评论的所有回复
		List<Message> messageList=messageDao.findByParent(pid);
		if(messageList!=null && messageList.size()>0) {
			for(Message message : messageList) {
				//根据回复的id获取所有回复的回复
				String id=message.getId();
				List<Message> replyList=findByParent(id);
				if(replyList!=null && replyList.size()>0) {
					message.setChildren(replyList);
				}
			}
		}
		return messageList;
	}
	
	public Long getTotal(Map<String, Object> map) {
		return messageDao.getTotal(map);
	}

	public Integer delete(String id) {
		return messageDao.delete(id);
	}

	public int update(Message message) {
		return messageDao.update(message);
	}

}

